home *** CD-ROM | disk | FTP | other *** search
/ Softdisk G-S 91 / SGDS 91.2mg / SDGS.91 / SDB91 / B / CONVERTER (.txt) < prev    next >
Encoding:
Applesoft BASIC Source Code  |  1989-03-20  |  7.3 KB  |  162 lines  |  [FC] Applesoft BASIC Program (0x0801)

  1. 0  REM NUMBER CONVERTER (C)1989
  2. 1  REM BY JILL RICHARDSON
  3. 2  REM "POKE104,12:LIST" TO SEE PROGRAM.
  4. 3  REM CALL2255 TO GET TO THIS PART.
  5. 5  PRINT  CHR$(21);
  6. 6  POKE 104,12: GOTO 1
  7. 100  PRINT  CHR$(4)"BYE"
  8. 59  TO <CTRL-0x08>n
  9. 13360 ,12: GOTO 1
  10. 120  REM   EXIT PR SPEED= <CTRL-0x08> DEL h`8 <CTRL-0x1f><UNKNOWN TOKEN> GOSUB <CTRL-0x02> HGR2 <CTRL-0x01>` IF ^ TAB(  IF ) TAB( <CTRL-0x09>  PLOT ) TAB( `8 <CTRL-0x1f><UNKNOWN TOKEN> GOSUB <CTRL-0x02> HGR2 <CTRL-0x01>` IF _ TAB(  IF ) TAB( ) SIN PLOT ) TAB( `"
  11. 19465  MID$ <CTRL-0x09>L SAVE <CTRL-0x0a>Lo<CTRL-0x0a>L GR <CTRL-0x0a>L -<CTRL-0x0a>L<UNKNOWN TOKEN><CTRL-0x0a>L8<CTRL-0x0b> ONERR <UNKNOWN TOKEN>  TO <UNKNOWN TOKEN> RUN  GET <CTRL-0x09> RETURN ( - COLOR=  = <CTRL-0x08> + ^ NEW <CTRL-0x09><UNKNOWN TOKEN>g0<UNKNOWN TOKEN> RUN  GET <CTRL-0x09> RETURN ( SCALE=  FN <CTRL-0x09> - TAN HGR2 <CTRL-0x07> -<UNKNOWN TOKEN> GOSUB <CTRL-0x03>8 RIGHT$ TAN)? HGR ( + ^ NEW <CTRL-0x09> =  ASC IF <CTRL-0x10> TAB(  RESTORE 
  12. 61576 0 TAN XDRAW <UNKNOWN TOKEN>, TAN PR# <UNKNOWN TOKEN>( TAN IN# <UNKNOWN TOKEN>$ TAN PLOT <UNKNOWN TOKEN><CTRL-0x0e> TAN TRACE <UNKNOWN TOKEN><CTRL-0x02> =  LEN SPEED= 
  13. 4336  =  ONERR  RUN  GET <CTRL-0x09> POKE  FN <CTRL-0x09> HGR ( + ^ NEW <CTRL-0x09> = <UNKNOWN TOKEN> IF <CTRL-0x10> TAB( ` RUN  GET <CTRL-0x09> POKE  FN <CTRL-0x09> HGR ( + ^ NEW <CTRL-0x09> = <UNKNOWN TOKEN> ONERR <UNKNOWN TOKEN> TAN XDRAW <UNKNOWN TOKEN><CTRL-0x14> TAN PR# <UNKNOWN TOKEN><CTRL-0x10>  AND  TAB( <CTRL-0x09> = <CTRL-0x07> IF  TO <CTRL-0x09> DEL <UNKNOWN TOKEN> =  +  NOT <UNKNOWN TOKEN><CTRL-0x10>  THEN   AND  TO <CTRL-0x09> = <CTRL-0x07> IF  TAB( <CTRL-0x09> DEL <UNKNOWN TOKEN><CTRL-0x10><CTRL-0x02> ASC<UNKNOWN TOKEN>L<CTRL-0x18><CTRL-0x09><CTRL-0x05>"<CTRL-0x07><CTRL-0x11>
  14. 58820  LEN COLOR= <UNKNOWN TOKEN><UNKNOWN TOKEN> COLOR=  + VAL<UNKNOWN TOKEN> RUN  COLOR=  FN <UNKNOWN TOKEN><UNKNOWN TOKEN> VAL<UNKNOWN TOKEN> RUN  COLOR=  RESUME  COLOR=  FN  RIGHT$<UNKNOWN TOKEN> ATN<UNKNOWN TOKEN><UNKNOWN TOKEN> COLOR=   SAVE 
  15. 976   GET  COS  SAVE 
  16. 22985 <UNKNOWN TOKEN><CTRL-0x05> -N<UNKNOWN TOKEN><CTRL-0x08>` SPEED=  POS PLOT 
  17. 43269   OR  PLOT 
  18. 65005   NOT $ <CTRL-0x0c><UNKNOWN TOKEN> - PLOT <UNKNOWN TOKEN>% - POS<UNKNOWN TOKEN><CTRL-0x13> -  OR <UNKNOWN TOKEN><CTRL-0x16> -<UNKNOWN TOKEN><UNKNOWN TOKEN><CTRL-0x0b> -<UNKNOWN TOKEN><UNKNOWN TOKEN><CTRL-0x0e>H o<CTRL-0x0a>h =  PEEK SPEED=  POS PLOT 
  19. 43274   OR  PLOT 
  20. 44291 
  21. 65005  SPEED= <CTRL-0x0d> PLOT <CTRL-0x01><CTRL-0x02>  GET  COS  LEN SIN l EXP DEL  DEL  INPUT  DIM  SPEED= 
  22. 3490   RIGHT$ LEN  SHLOAD  SQR` o<UNKNOWN TOKEN> LEFT$ SPEED= <CTRL-0x0d> NORMAL 
  23. 43483   DEL <UNKNOWN TOKEN> SPEED= <CTRL-0x04>  STORE <UNKNOWN TOKEN> PLOT 0 TAB(  SPEED= $  STORE <UNKNOWN TOKEN> PLOT 0 TAB(   NOT <UNKNOWN TOKEN> = <UNKNOWN TOKEN>`  IN# <CTRL-0x0a> COLOR= `  HCOLOR= <CTRL-0x0a> COLOR= P INPUT <UNKNOWN TOKEN> SPEED= <CTRL-0x16> DEL <UNKNOWN TOKEN> VTAB < SPEED= 
  24. 53450 <CTRL-0x05>,0 TAB(  VTAB < GR  = <CTRL-0x05>,0 TAB(  LOMEM: <UNKNOWN TOKEN>  NOT <UNKNOWN TOKEN> = <UNKNOWN TOKEN>  NOT <UNKNOWN TOKEN> =  LEFT$` ROT= H LOMEM: <CTRL-0x1e> ONERR <UNKNOWN TOKEN>  STORE <UNKNOWN TOKEN> IF 0 TAB(  GR  = <UNKNOWN TOKEN>h STORE ` IF  STOP <UNKNOWN TOKEN> - MID$  = <CTRL-0x1f> IF <CTRL-0x1e><UNKNOWN TOKEN> - IF  = <CTRL-0x18> IF  TAB( <UNKNOWN TOKEN> - MID$  = <CTRL-0x11> IF  NEW <UNKNOWN TOKEN> - MID$  = <CTRL-0x0a> SPEED= <UNKNOWN TOKEN> PLOT 0 GET  SPEED= <CTRL-0x0a> PLOT 1 GET ` - ATN HGR2 <CTRL-0x06> -<UNKNOWN TOKEN> GOSUB <CTRL-0x02>) SINL<UNKNOWN TOKEN><UNKNOWN TOKEN> SPEED= <CTRL-0x04> DEL % SPEED= 
  25. 10144  POKE <CTRL-0x11><CTRL-0x0b> <UNKNOWN TOKEN><UNKNOWN TOKEN> GR  = <UNKNOWN TOKEN>` COLOR= NOSDRAHCIR .R LLIJ 8891 )C( THGIRYPOC  ONERR %H ONERR $H  GET  COS <UNKNOWN TOKEN> ASC PR# H  GET  COS <UNKNOWN TOKEN> ASC PR#  STORE hH LET  ONERR %H J<UNKNOWN TOKEN>h GR <UNKNOWN TOKEN><CTRL-0x17> LET  LEFT$ TAN<CTRL-0x18> HGR2 <CTRL-0x02> VTAB 
  26. 8736 <UNKNOWN TOKEN>h LET hH DEL $ PR# H =  SINhh DEL $h DEL % "<UNKNOWN TOKEN>`GIRYPOC  ONERR %H ONERR $H  GET  COS <UNKNOWN TOKEN> ASC PR# H  GET  COS <UNKNOWN TOKEN> ASC PR#  STORE hH LET  ONERR %H J<UNKNOWN TOKEN>h GR <UNKNOWN TOKEN><CTRL-0x17> LET  LEFT$ TAN<CTRL-0x18> HGR2 <CTRL-0x02> VTAB 
  27. 8736 <UNKNOWN TOKEN>h LET hH DEL $ PR# H =  SINhh DEL $h DEL % "<UNKNOWN TOKEN>`33333
  28. 13107 33<CTRL-0x1e>
  29. 7987 <CTRL-0x03><CTRL-0x03><CTRL-0x03>
  30. 13107 3?<CTRL-0x1e>p<CTRL-0x1f>33<CTRL-0x1f><CTRL-0x1f>33
  31. 7683 00<CTRL-0x1f>
  32. 3084 <CTRL-0x0c><CTRL-0x0c><CTRL-0x0c>
  33. 268 
  34. 20308 P HALF
  35. 2  RESTORE 
  36. 3  REM  CALL 2255 BEFORE YOU SAVE!!!
  37. 4  REM  DO UPPERCASE IF II+
  38. 5 UC = 2319: CALL UC
  39. 8  REM  * Number Converter        *
  40. 9  REM  * (c)1989 Jill Richardson *
  41. 10  TEXT : PRINT  CHR$(21): HOME : ONERR  GOTO 1140
  42. 11  COLOR= 10: HLIN 0,39 AT 0: HLIN 0,39 AT 46: VLIN 0,47 AT 0: VLIN 0,47 AT 39: VTAB 5: HTAB 4: PRINT "Number Converter"
  43. 12  VTAB 7: HTAB 4: PRINT "(c)1989 by Jill Richardson": VTAB 8: HTAB 4: PRINT "All rights reserved.": VTAB 9: HTAB 4: PRINT "Published on Softdisk #91."
  44. 15  VTAB 10: HTAB 4: PRINT "Subscriptions: 1-800-831-2694": VTAB 11: HTAB 4: PRINT "Changing this notice is illegal.": VTAB 18: HTAB 4: PRINT "Press a key.";: POKE  -16368,0: GET K$
  45. 20  GOTO 780
  46. 30  POKE S1,64: POKE S2,16: CALL BP: RETURN 
  47. 40  POKE S1,36: POKE S2,30: CALL BP: RETURN 
  48. 50  POKE S1,245: POKE S2,9: CALL BP: RETURN 
  49. 60  POKE 36,0: PRINT MO$(8): RETURN 
  50. 70  VTAB 8: POKE 36,4: CALL WD,HW,VW: VTAB 21: CALL CS: RETURN 
  51. 80  GOSUB 40: GOTO 370
  52. 90  POKE 36, INT(20 - LEN(MG$)/2): PRINT MG$;: RETURN 
  53. 100  VTAB 8: POKE 36,4: PRINT MO$(LL): POKE 36,5: PRINT EM$(6):MG$ = "Enter" +NG$(LL) +"number:"
  54. 105  VTAB 12: GOSUB 90: PRINT :VT = 14: VTAB VT: POKE 36,10: POKE 50,63: PRINT " ENTER ";: POKE 50,255: PRINT "-> ";: IF LL = 2  THEN  PRINT "$";
  55. 110  IF LL = 1  THEN  VTAB 22: POKE 36,8: PRINT EM$(4): VTAB VT: POKE 36,20
  56. 120  IF LL = 2  THEN  VTAB 22: POKE 36,4: PRINT EM$(7): VTAB VT: POKE 36,21
  57. 130  IF LL = 3  THEN  VTAB 22: POKE 36,9: PRINT EM$(0): VTAB VT: POKE 36,24: PRINT "= Lo Byte";: POKE 36,20
  58. 140  IF LL = 4  THEN  VTAB 22: POKE 36,7: PRINT EM$(2): VTAB VT: POKE 36,8: POKE 50,63: PRINT " ENTER ";: POKE 50,255: PRINT "->                 ";: POKE 36,18
  59. 150  IF LL = 5  THEN  VTAB 22: POKE 36,6: PRINT EM$(3): VTAB VT: POKE 36,20: PRINT "-";
  60. 160  IF LL = 1  OR LL = 5  THEN  GOSUB 30: RETURN 
  61. 170  GOSUB 50: RETURN 
  62. 180 X$ = "":LX = 0: POKE CK,0
  63. 190 KB =  PEEK(RK): IF KB <128  THEN 190
  64. 200  POKE CK,0: IF   NOT F3  AND LX = 0  AND KB = 176  THEN  CALL BL: GOTO 190
  65. 210  IF F1  THEN 250
  66. 220  IF F2  THEN 270
  67. 230  IF KB >175  AND KB <186  THEN 350
  68. 240  GOTO 280
  69. 250  IF (KB >175  AND KB <186)  OR (KB >192  AND KB <199)  THEN 350
  70. 260  GOTO 280
  71. 270  IF KB >175  AND KB <178  THEN 350
  72. 280  IF (KB < >136  AND KB < >255)  THEN 320
  73. 290  IF X$ = ""  THEN  CALL BL: GOTO 190
  74. 300  IF LX = 1  THEN LX = 0:X$ = "": PRINT BS$;: GOSUB 50: GOTO 190
  75. 310 LX = LX -1:X$ =  LEFT$(X$,LX): PRINT BS$;: GOTO 190
  76. 320  IF KB = 141  THEN  RETURN 
  77. 330  IF KB = 155  THEN 960
  78. 340  CALL BL: GOTO 190
  79. 350  IF LX > = L  THEN  CALL BL: GOTO 190
  80. 360 W$ =  CHR$(KB -128): PRINT W$;:X$ = X$ +W$:LX =  LEN(X$): GOTO 190
  81. 370  GOSUB 70:VT = 8: FOR I = 1 TO 6: VTAB VT: POKE 36,4: PRINT MO$(I):VT = VT +2: NEXT : VTAB 22: PRINT MG$(I): PRINT : PRINT MG$(I +1);: VTAB 20: PRINT 
  82. 380  CALL MB:LL =  INT( PEEK(235)/2) -2: GOSUB 70: PRINT 
  83. 390  VTAB 5: CALL CE: PRINT : IF LL <0  THEN 960
  84. 400  IF LL <6  THEN  GOSUB 100
  85. 410  ON LL GOTO 420,450,500,580,600,960
  86. 420 L = 5: GOSUB 180: IF X$ = ""  THEN 80
  87. 430 DC =  VAL(X$): IF DC >65535  THEN  GOSUB 660: POKE 36,20: GOTO 420
  88. 440  GOSUB 70:DC =  VAL(X$): GOTO 670
  89. 450 L = 4:F1 = 1: GOSUB 180:F1 = 0: IF X$ = ""  THEN 80
  90. 460  GOSUB 70:HX$ = X$: FOR I = 1 TO 4:HX$(I) = "": NEXT :DC = 0:P = 1:X = 4:Y = LX
  91. 470  FOR I = 1 TO LX:HX$(X) =  MID$ (HX$,Y,1):X = X -1:Y = Y -1: NEXT : FOR I = 4 TO (5 -LX)  STEP  -1:H =  ASC(HX$(I)): IF H >64  THEN H = H -7
  92. 480 H = H -48:DC = DC +(H *P):P = P *16: NEXT : GOTO 670
  93. 490  VTAB 22: POKE 36,9: POKE 50,63: PRINT EM$(1);: POKE 50,255: CALL ER: POKE 36,9: FOR II = 1 TO 500: NEXT : PRINT EM$(0): VTAB VT: POKE 36,20: PRINT "   ";: POKE 36,20: ON F GOTO 510,540
  94. 500 L = 3:F = 1
  95. 510 F3 = 1: GOSUB 180: IF X$ = ""  THEN 80
  96. 520 LB =  VAL(X$): IF LB >255  THEN 490
  97. 530 VT = 16: VTAB 14: POKE 36,10: PRINT "         ": VTAB VT: POKE 36,10: POKE 50,63: PRINT " ENTER ";: POKE 50,255: PRINT "-> ";: POKE 36,24: PRINT "= Hi Byte";: POKE 36,20
  98. 540 F = 2: GOSUB 180: IF X$ = ""  THEN 80
  99. 550 HB =  VAL(X$): IF HB >255  THEN 490
  100. 560 DC = HB *256 +LB:F = 0:F3 = 0: IF DC = 0  THEN 80
  101. 570  GOTO 670
  102. 580 L = 16:F2 = 1: GOSUB 180:F2 = 0: IF X$ = ""  THEN 80
  103. 590  GOSUB 70:DC = 0: FOR I = 0 TO LX -1:DN =  VAL( MID$ (X$,LX -I,1)):DC = DC +DN *2 ^I: NEXT : GOTO 670
  104. 600 L = 5: GOSUB 180: IF X$ = ""  THEN 80
  105. 610 N =  VAL(X$): IF  ABS(N) >65535  THEN  GOSUB 660: VTAB 22: CALL CE: POKE 36,6: PRINT EM$(3): VTAB 14: POKE 36,20: PRINT "-";: GOTO 600
  106. 620 H = 0: GOSUB 70: VTAB 10: POKE 36,8: PRINT "Negative Address: -"X$: PRINT : POKE 36,8: PRINT "Positive Address: +";:H = H -N:N = H:DC = 2 ^16 - ABS(N): PRINT DC
  107. 630  VTAB 14:MG$ = EM$(8): GOSUB 90: PRINT : PRINT :MG$ = "Want Hex, Bytes & Binary?": GOSUB 90: PRINT : PRINT :MG$ = "Yes or No (Y/N)? ": GOSUB 90: CALL YN,Y,A$: PRINT 
  108. 640  IF  ASC(A$) < >217  THEN  VTAB 14: FOR I = 1 TO 3: PRINT MO$(0): NEXT : GOTO 750
  109. 650  GOSUB 70: GOTO 670
  110. 660  VTAB 22: POKE 36,0: CALL CE: POKE 36,8: INVERSE : PRINT EM$(5);: NORMAL : CALL ER: FOR II = 1 TO 400: NEXT : POKE 36,8: PRINT EM$(4): VTAB 14: POKE 36,20: PRINT "      ";: RETURN 
  111. 670 HB =  INT(DC/256):LB = DC -(HB *256):N1 =  ABS( INT(LB/16) *16 -LB):N2 =  INT(LB/16):N3 =  ABS( INT(HB/16) *16 -HB):N4 =  INT(HB/16)
  112. 680 LB$ = DH$(N2) +DH$(N1):HB$ = DH$(N4) +DH$(N3):HX$ = HB$ +LB$: IF HB$ = "00"  THEN HX$ = LB$
  113. 690  IF  LEFT$(HX$,1) = "0"  THEN HX$ =  RIGHT$(HX$,3)
  114. 700 B$ = BN$(N4) +BN$(N3) +BN$(N2) +BN$(N1): IF N4 >7  THEN 730
  115. 710  FOR I = 1 TO 16: IF  MID$ (B$,I,1) < >"0"  THEN B$ =  RIGHT$(B$,(17 -I)):I = 16
  116. 720  NEXT 
  117. 730  GOSUB 70: VTAB 9: FOR I = 1 TO 4: POKE 36,22 - LEN(OG$(I)): PRINT OG$(I): PRINT : NEXT : VTAB 8: POKE 32,22: POKE 33,18: PRINT 
  118. 740  VTAB 9: PRINT DC: PRINT : PRINT "$"HX$: PRINT : PRINT LB" ($"LB$")": PRINT : PRINT HB" ($"HB$")": POKE 32,0: POKE 33,40: PRINT :MG$ = OG$(5) +B$: GOSUB 90: PRINT 
  119. 750  VTAB 22:MG$ = "Do another" +NG$(LL) +"number? (Y/N) ": GOSUB 90: CALL YN,Y,A$
  120. 760  IF  ASC(A$) < >217  THEN 80
  121. 770  GOSUB 70: GOSUB 100: GOTO 410
  122. 780 S1 = 30:S2 = 249:MB = 2304:CP = 2322:YN = 2307:BP = 2310:CE = 64668:BL = 2313:ER = 2316:UC = 2319:RK = 49152:CK = 49168:CS = 64578:WD = 2325:HL = 235:TL = 6:LL = 8:HW = 31:VW = 11
  123. 790  FOR I = 0 TO 9: READ MG$(I): NEXT : FOR I = 1 TO 5: READ NG$(I): NEXT : FOR I = 1 TO 5: READ OG$(I): NEXT : FOR I = 0 TO 8: READ MO$(I): NEXT 
  124. 800  FOR I = 0 TO 8: READ EM$(I): NEXT : DIM DH$(15): DIM BN$(15): FOR I = 0 TO 15: READ DH$(I): NEXT : FOR I = 0 TO 15: READ BN$(I): NEXT : FOR I = 1 TO 3: READ J: READ K: POKE J,K: NEXT 
  125. 810 TL$ = MO$(7) +MG$(9) +MO$(7):BS$ =  CHR$(8) + CHR$(32) + CHR$(8)
  126. 820  HOME : PRINT TL$: GOSUB 980: VTAB 4:MG$ = ID$: GOSUB 90: POKE 34,4: PRINT : CALL CP: POKE 36,0: PRINT MG$(0): PRINT MO$(8)
  127. 830 J = 1: FOR I = 8 TO 18  STEP 2: VTAB I: PRINT MG$(J): IF J = 6  THEN  NEXT : VTAB 19: PRINT MO$(8): PRINT : PRINT MG$(7): PRINT : PRINT MG$(8);: GOTO 380
  128. 840  VTAB I +1: PRINT MO$(0):J = J +1: NEXT 
  129. 850  DATA  " Copyright (C) 1989  Jill R. Richardson","  Dec to Hex, Bytes, & Binary  ","  Hex to Dec, Bytes, & Binary  ","  Bytes to Dec, Hex, & Binary  ","  Binary to Dec, Hex, & Bytes  "
  130. 860  DATA   "     Convert Minus Address     ","      Go back to Softdisk      ","   Use Arrow Keys to highlight choice,","      then press [RETURN] to select","<><><><><>= NUMBER CONVERTER =<><><><><>"
  131. 870  DATA       " Decimal "," Hexadecimal "," Byte "," Binary "," Minus ","Decimal = ","Hexadecimal = ","Lo Byte = ","Hi Byte = ","Binary = "
  132. 880  DATA   "                               ","  Dec to Hex, Bytes, & Binary","  Hex to Dec, Bytes, & Binary","  Bytes to Dec, Hex, & Binary","  Binary to Dec, Hex, & Bytes"
  133. 890  DATA    "     Convert Minus Address","      Go back to Softdisk"
  134. 900  DATA   "========================================","________________________________________"
  135. 910  DATA    "= Enter 0 to 255 only =","= ENTER 0 TO 255 ONLY =","= Enter 0's and 1's only =","(Do NOT type the minus sign)","= Do not exceed 65535 =", "= DO NOT EXCEED 65535 ="
  136. 920  DATA    "_____________________________","Enter 1 to 4 numbers (0-9, A-F)","_________________________"
  137. 930  DATA    "0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"
  138. 940  DATA   "0000","0001","0010","0011","0100","0101","0110","0111","1000","1001","1010","1011","1100","1101","1110","1111"
  139. 950  DATA   235,7,30,64,249,16
  140. 960  VTAB 17: POKE 34,4: PRINT : POKE 36,4: PRINT MO$(6): VTAB 7: CALL WD,40,11: VTAB 19: CALL CS: VTAB 5: POKE 36,0: CALL CP: PRINT : IF GS  THEN  POKE GS,SD
  141. 970  PRINT  CHR$(4)"BYE...."
  142. 980 ID =  PEEK(64435):A1 =  PEEK(64448):A2 =  PEEK(64898) + PEEK(64899):A3 =  PEEK(64447): IF ID = 56  THEN ID$ = "APPLE ][": GOTO 1120
  143. 990  IF ID = 234  AND A2 = 264  THEN ID$ = "Apple ][+": GOTO 1080
  144. 1000 ID = ID +A1: IF ID = 240  AND A2 = 296  THEN ID$ = "Apple //e": GOTO 1080
  145. 1005  IF ID = 6  AND (A3 >5  AND A3 <128)  THEN ID$ = "Apple //c Plus": GOTO 1080
  146. 1010  IF ID = 6  AND A2 = 468  THEN ID$ = "Apple //c": GOTO 1080
  147. 1020  IF ID = 230  AND A2 = 253  THEN GS = 49268:ID$ = "Laser 128EX, Fast Mode": GOSUB 1090: GOTO 1080
  148. 1030  IF ID = 230  AND A2 = 420  THEN ID$ = "Apple //e, enhanced": GOTO 1080
  149. 1040  IF ID = 230  THEN ID$ = "Apple IIGS: Fast Mode":GS = 49206: GOSUB 1090: GOTO 1080
  150. 1050  IF AI = 208  THEN ID$ = "Franklin Ace 2000": GOTO 1080
  151. 1060  IF  PEEK(49048) = 192  THEN ID$ = "Apple ///": GOTO 1080
  152. 1070 ID$ = "APPLE COMPATIBLE"
  153. 1080 ID$ = "System: " +ID$: RETURN 
  154. 1090 SD =  PEEK(GS): IF SD < >240  AND GS = 49268  THEN ID$ = "Laser 128EX, Slow Mode"
  155. 1095  IF SD >128  THEN  RETURN 
  156. 1100  IF GS = 49206  THEN ID$ = "Apple IIGS: Slow Mode"
  157. 1110  RETURN 
  158. 1120  VTAB 4:MG$ = "SYSTEM: " +ID$: GOSUB 90: PRINT : CALL CP: PRINT : VTAB 10: POKE 36,7: PRINT "USE LOWERCASE TEXT (Y/N)? ";: CALL YN,Y,A$: VTAB 6: CALL CS: IF  ASC(A$) < >206  THEN 1080
  159. 1130  CALL UC: GOTO 1080
  160. 1150 KB =  PEEK(RK): IF KB <128  THEN 1150
  161. 1160  POKE CK,0: IF KB < >141  THEN  CALL BL: GOTO 1150
  162. 1170 : HOME : GOTO 970